package com.hua.designpattern.j2eepattern.dao;

import java.util.Collection;

/**
 * 
 * @author joshua
 *
 *         <pre>
 *   数据访问对象模式（Data Access Object Pattern）或 DAO 模式用于把低级的数据访问 API（或操作） 从高级的业务服务中分离出来。
 *   将数据的访问封装，实现业务层与数据操作层的分离。
 * 
 * 
 *         </pre>
 *
 */
public class TestDataAccessObject {

	public static void main(String[] args) {
		DAOInterface userDao = new UserDao();
		userDao.create(new User(1, "name1"));
		userDao.create(new User(2, "name2"));
		userDao.create(new User(3, "name3"));
		userDao.create(new User(4, "name4"));
		userDao.create(new User(5, "name5"));
		display(userDao.retrive());
		System.out.println("--delete userno=2: " + userDao.delete(2));
		display(userDao.retrive());
		System.out.println("--retrive userno=3: " + userDao.retrive(3));
		System.out.println("--update userno=4: " + userDao.update(new User(4, "user44")));
		display(userDao.retrive());
	}

	private static void display(Collection<User> users) {
		System.out.println("--------retrive all--------");
		for (User user : users) {
			System.out.println(user);
		}
	}

}
